Personal computers typically communicate with a printer through a multiple conductor parallel cable with a dedicated hardware interface at each end. Depending on the make and model of the computer and how it has been configured by the user and/or by the various application programs installed by the user, the amount of data that can be transmitted over the parallel communication link will vary from less than 30 kBs (kilo-bytes per second) to well over 500 kBs. The effective communication rate will vary even more, depending on to what extent the data is compressed before transmission and whether the compression is performed on a timeshared basis by software resident in the computer, or by dedicated hardware resident in the interface.
Printers are typically designed for an optimal throughput rate, which in the case of a swath-oriented printer (such as a typical inkjet printer) is, primarily, a function of the traverse rate of the carriage across each swath and how many times the carriage is traversed across a single swath. Optimal printing quality and maximum throughput of an inkjet printer is achieved only when the carriage motion is effectively continuous and not interrupted because of a communications bottleneck between the computer and the printer. Accordingly, prior art printers were typically provided with sufficient memory to store an entire swath before it was printed. However, today's inkjet printers are able to print images whose resolution (pixel density) and palette (number of bits per pixel) approximates that of conventional color photography, thus rendering it rather expensive to store sufficient data in the printer to print an entire swath of a photographic quality image. At the same time, it is desirable that the newer photographic quality, high resolution printers be compatible with older and slower computers without requiring expensive hardware upgrades and additional memory.
Another complication in the quest for optimal speed and quality is that even if a computer is provided with the latest and fastest communications interface hardware (for example, an ECP ("Extended Capabilities Port") chip which implements powerful compression and error correction algorithms), the capabilities of such hardware cannot be fully exploited in an uncontrolled consumer environment without risking compatibility with existing "legacy" software and hardware that was designed, tested and released before the improved interface hardware had become generally available. As a consequence, many hardware manufacturers and software vendors normally disable the advanced settings of the computer's communication interface and do not guarantee their products will perform properly if those settings are subsequently enabled. Accordingly, any software which enables the ECP chip's advanced capabilities without the user's consent may cause the PC to crash or otherwise become unstable.
On the other hand, it is not feasible to involve the user in the reconfiguration of their ECP port, since there is no recognized industry standard for either the configuration settings or the software tools required to reconfigure a particular ECP port on a particular computer. Moreover, any attempt by an inexperienced user to reconfigure the port has a high probability of causing problems for the user's system.